This specification relates to operations performed in conjunction with media content rendering.
The Internet is widely used to distribute media content, including video, graphic, audio, and scripting data. Media content can be downloaded as a file, or streamed to a client computer, where a media player application can process and output the media content to a display device and, if applicable, one or more speakers. The media player application or an application including media player functionality, in some examples, can be a program written for a particular operating system (OS) on a computer platform or a “plug-in” based software that runs inside another program, such as a runtime environment, on a computer platform.
Digital Rights Management (DRM) is used to control access to media content. A content provider, copyright holder, or publisher can apply a method of DRM encryption to compressed media content to deter the duplication and redistribution of the media content. DRM encryption is typically added and removed in a well-defined and recognizable manner.
A codec is a software program used to encode or decode media content, such as streamed media content provided to a client computer. The term codec stems from the combination of the terms compressor and decompressor or coder and decoder. There are separate codecs used for audio or video content, as well as combined multimedia codecs. A media player application can include one or more codecs for decompressing media content prior to rendering. Some codec standards include a provision for user-provided data to be included with the compressed media content. For example, the H.264/MPEG-4 Advanced Video Coding (AVC) codec standard, developed jointly by the ITU-T Video Coding Experts Group (VCEG) and the ISO/IEC Moving Picture Experts Group (MPEG), includes Supplemental Enhancement Information (SEI) content blocks which can be used to insert extra information into a compressed media content bit stream. The TrueMotion VP6 video codec standard, developed by On2 Technologies of Clifton Park, N.Y., provides for an arbitrary length control data buffer which can be appended to the end of a set-length video buffer.
Lightweight encoding algorithms require minimal computation and time to apply or reverse. An example of a lightweight encoding algorithm is a substitution box, or S-Box, which applies a linear substitution to discrete sections of data (e.g., bytes or words) based upon entries in a lookup table. Some S-Box implementations include a key which can be used to dynamically generate a substitution table. Rivest Cipher 4, or RC4, is another lightweight encoding algorithm. RC4 generates a keystream, including a pseudorandom stream of bits, which is combined with the source data using bit-wise exclusive-or. The decoding operation is also performed using bit-wise exclusive-or.